In digital circuits, a shift register may be constructed from a cascade of flip flops, each sharing the same clock. In such a shift register, the output of each flip flop is connected to the input of the next flip flop in the chain, resulting in a circuit that shifts by one position the bit array stored in it, shifting in the data present at its input and shifting out the last bit in the array, at each transition of the clock.
However, such conventional shift registers have a variety of undesirable drawbacks. For example, many are unidirectional, being only capable of shifting data in one direction. As another example, such conventional shift registers are sensitive to minor temperature and voltage variations, meaning that errors may occur in some operating scenarios.
Therefore, further development in the area of shift registers is needed.